/**
 * module room is require use app module
 */
(function() {
	'use strict';
	
	require.config({
		baseUrl: "/miwawa/resources/lib",
		paths: { "app": "miwawa/1.0.2/js/core/app" }
	});
	
	define(['app'],function(app){
		return function(register){
			for(var i in register){ app[register[i]](); }
		};
	});
	
})(this);

(function(window, document, $, undefined){
	'use strict';
	
	// 提交
	window["handlerSubmit"] = function(trigger, target, source, before) {
		var $btn = $(trigger).data("loadingText","正在提交...").button('loading').tooltip('destroy');
		
		jQuery(target).foreign().formSubmit(jQuery(source), {}, function(result){
			if(trigger && !jQuery(trigger).data("not-hide")) jQuery(trigger).parent().hide();
			
			$btn.button('reset').tooltip();
			
			var callback = jQuery(trigger).data("submit-callback");
			if(callback) window[callback](result);
		}, before);
		$btn.button('reset').tooltip();
	}
	
	// 提交行编辑
	window["handlerSubmitRow"] = function(table, before, callback){
		var _opts = jQuery(table).data();
		jQuery(_opts.formTarget).foreign().formSubmit(jQuery(_opts.formSource), {}, function(data){
			var foreign= jQuery("[data-foreign-id]", _opts.formSearch);
			if(foreign) foreign.val(data[foreign.attr("name")]);
			
			if(callback) window[callback](data);
			
			jQuery("[data-toggle='tooltip']",table).tooltip('destroy');
			
			jQuery(table).bootstrapTable('refresh');
			
		}, before);
	}
	
	// 取消行编辑
	window["handlerCancelRow"] = function(table, edit){
		jQuery("[data-toggle='tooltip']",table).tooltip('destroy');
		
		edit ? jQuery(table).bootstrapTable('refresh') : jQuery(table).bootstrapTable('removeByUniqueId', 'new');
	}
	
	// 列表标签切换
	window["handlerStatus"] = function(trigger, status){
		var _opts = jQuery(trigger).data();
		
		// 切换按钮激活样式
		jQuery(".active", jQuery(trigger).parent()).removeClass("active");
		jQuery(trigger).addClass("active");
		
		// 执行按钮扩展点击事件
		if(_opts.tableToggle){ eval(_opts.tableToggle); }
		
		// 这是查询条件
		if(status){
			jQuery(":hidden[name='status']", _opts.formSearch).val(status);
		}
		
		// 设置列表表列
		if(_opts.columns){
			jQuery(_opts.tableTarget).bootstrapTable('refreshOptions', {"columns": columns[status]});
		}
		
		// 刷新列表（执行查询）
		jQuery(_opts.tableTarget).bootstrapTable('refreshOptions', {"pageNumber":1,"searchText":null});
		jQuery(_opts.tableTarget).bootstrapTable('refresh');
	}
})(window, document, window.jQuery);